package org.wu.framework.authorization.platform.application.assembler;

import org.wu.framework.authorization.platform.domain.model.sys.permission.SysPermission;
import org.wu.framework.authorization.platform.application.command.sys.permission.SysPermissionRemoveCommand;
import org.wu.framework.authorization.platform.application.command.sys.permission.SysPermissionStoryCommand;
import org.wu.framework.authorization.platform.application.command.sys.permission.SysPermissionUpdateCommand;
import org.wu.framework.authorization.platform.application.command.sys.permission.SysPermissionQueryListCommand;
import org.wu.framework.authorization.platform.application.command.sys.permission.SysPermissionQueryOneCommand;
import org.wu.framework.authorization.platform.application.dto.SysPermissionDTO;
import org.wu.framework.authorization.platform.application.command.sys.permission.SysPermissionExcelExport;
import org.wu.framework.authorization.platform.application.command.sys.permission.SysPermissionExcelImport;
import org.wu.framework.core.mapper.LazyStructMappers;
import org.wu.framework.core.mapper.LazyStructMapper;
/**
 * describe 系统权限 
 *
 * @author Jia wei Wu
 * @date 2025/08/03 01:55 下午
 * @see org.wu.framework.lazy.orm.core.persistence.reverse.lazy.ddd.DefaultDDDLazyAssembler 
 **/
@LazyStructMapper
public interface SysPermissionDTOAssembler {


    /**
     * describe LazyStructMapper 创建的代理对象
     *
     
     
     
     * @author Jia wei Wu
     * @date 2025/08/03 01:55 下午
     **/
    SysPermissionDTOAssembler INSTANCE = LazyStructMappers.getMapper(SysPermissionDTOAssembler.class);
    /**
     * describe 应用层存储入参转换成 领域对象
     *
     * @param sysPermissionStoryCommand 保存系统权限对象     
     * @return {@link SysPermission} 系统权限领域对象     
     
     * @author Jia wei Wu
     * @date 2025/08/03 01:55 下午
     **/
     SysPermission toSysPermission(SysPermissionStoryCommand sysPermissionStoryCommand);
    /**
     * describe 应用层更新入参转换成 领域对象
     *
     * @param sysPermissionUpdateCommand 更新系统权限对象     
     * @return {@link SysPermission} 系统权限领域对象     
     
     * @author Jia wei Wu
     * @date 2025/08/03 01:55 下午
     **/
     SysPermission toSysPermission(SysPermissionUpdateCommand sysPermissionUpdateCommand);
    /**
     * describe 应用层查询入参转换成 领域对象
     *
     * @param sysPermissionQueryOneCommand 查询单个系统权限对象参数     
     * @return {@link SysPermission} 系统权限领域对象     
     
     * @author Jia wei Wu
     * @date 2025/08/03 01:55 下午
     **/
     SysPermission toSysPermission(SysPermissionQueryOneCommand sysPermissionQueryOneCommand);
    /**
     * describe 应用层查询入参转换成 领域对象
     *
     * @param sysPermissionQueryListCommand 查询集合系统权限对象参数     
     * @return {@link SysPermission} 系统权限领域对象     
     
     * @author Jia wei Wu
     * @date 2025/08/03 01:55 下午
     **/
     SysPermission toSysPermission(SysPermissionQueryListCommand sysPermissionQueryListCommand);
    /**
     * describe 应用层删除入参转换成 领域对象
     *
     * @param sysPermissionRemoveCommand 删除系统权限对象参数     
     * @return {@link SysPermission} 系统权限领域对象     
     
     * @author Jia wei Wu
     * @date 2025/08/03 01:55 下午
     **/
     SysPermission toSysPermission(SysPermissionRemoveCommand sysPermissionRemoveCommand);
    /**
     * describe 持久层领域对象转换成DTO对象
     *
     * @param sysPermission 系统权限领域对象     
     * @return {@link SysPermissionDTO} 系统权限DTO对象     
     
     * @author Jia wei Wu
     * @date 2025/08/03 01:55 下午
     **/
     SysPermissionDTO fromSysPermission(SysPermission sysPermission);
    /**
     * describe 持久层领域对象转换成导出数据对象
     *
     * @param sysPermission 系统权限领域对象     
     * @return {@link SysPermissionExcelExport} 系统权限导出数据对象     
     
     * @author Jia wei Wu
     * @date 2025/08/03 01:55 下午
     **/
     SysPermissionExcelExport fromSysPermissionToExcelExport(SysPermission sysPermission);
    /**
     * describe 应用层导入入参转换成 领域对象
     *
     * @param sysPermissionExcelImport 导入系统权限对象参数     
     * @return {@link SysPermission} 系统权限领域对象     
     
     * @author Jia wei Wu
     * @date 2025/08/03 01:55 下午
     **/
     SysPermission toSysPermission(SysPermissionExcelImport sysPermissionExcelImport);
}